// 模块化
import axios from 'axios'
// 按需导入登录接口
import { doLogin } from '@/api/user'
import { Message } from 'element-ui'
export default {
  // 开启命名空间
  namespaced: true,
  state: {
    token:"", //储存token
    userInfo:{} //存储用户信息
  },
  getters: {
  },
  mutations: {
    // 定义token函数
    updatedToken(state,newToken){
      state.token = newToken
    },
    // 定义更新userInfo的函数
    updateUserInfo(state,payload){
      state.userInfo = payload
    }
  },
  actions: {
    // 定义函数发送请求 context是仓库实例对象可以直接调用
    async initUserInfo(context){
      // 请求头需要token
      const {data:res} =await axios.get('/my/userinfo')
      console.log(res) //数据在res.data
      // 调用 mutations 中的函数 传递数据进行存储
      context.commit('updateUserInfo',res.data)
    },

    // 模块化定义登录函数 发送请求 获取参数token
    async userLogin (context,data){
      const {data:res} = await doLogin(data)
      // 判断请求是否成功
      if(res.code!==0) return Message.error(res.message) //请求失败
      Message.success(res.message) //请求成功
      // 请求成功拿到token 保存到vuex中
      context.commit('updatedToken', res.token)
    }
  },
}